<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>事件高级-事件委托(代理或委派)</title>
</head>

<body>
    <ul>
        <li>点我出警示窗口</li>
        <li>点我出警示窗口</li>
        <li>点我出警示窗口</li>
        <li>点我出警示窗口</li>
        <li>点我出警示窗口</li>
    </ul>
    <script>
        // 事件委托原理: 不是每个子节点单独设置事件监听器,而是事件监听器设置在其父节点上,然后利用冒泡原理影响设置每个子节点
        // 以上案例：给ul注册点击事件，然后利用事件对象的 target 来找到当前点击li，因为点击li，事件会冒泡到ul上，ul有注册事件，就会触发事件监听器


        // 事件委托核心原理：给父节点添加监听器，利用事件冒泡影响每一个子节点li
        var ul = document.querySelector('ul');
        ul.addEventListener('click', function(e) {
            alert('hello~');
            // console.log(111);
            // console.log(e.target);  e.target得到点击的对象
            e.target.style.backgroundColor = 'red';
        })
    </script>
</body>

</html>